package com.xique.door.command;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.door.bean.domain.AccessDevice;
import com.xique.door.bean.domain.CardDevice;
import com.xique.door.bean.domain.DCard;
import com.xique.door.bean.domain.estate.EstateUser;
import com.xique.door.bean.dto.EstateUserDownDTO;
import com.xique.door.device.hq.bean.dto.HQResultDTO;

import java.util.List;

/**
 * @author shd
 * @create 2022/6/9 18:45
 */
public interface IDeviceEstateUserCommandService {

    AjaxResult getReturnHQ(HQResultDTO dto, String fromType);

    /**
     * 下发用户信息到设备
     * @author shd
     * @date 2022/6/9 18:46
     * @param devices
     * @param users
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult downUsers(List<AccessDevice> devices, List<EstateUserDownDTO> users);

    /**
     * 下发删除用户信息到设备
     * @author shd
     * @date 2022/6/9 18:46
     * @param devices
     * @param users
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult deleteUsers(List<AccessDevice> devices, List<EstateUserDownDTO> users);

    /**
     * 删除卡片
     * @author shd
     * @date 2022/6/14 11:19
     * @param card
     * @param cardDevices
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult deleteCard(DCard card, List<CardDevice> cardDevices);

    /**
     * 下发卡片
     * @author shd
     * @date 2022/6/14 11:25
     * @param devices
     * @param users
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult downCard(List<AccessDevice> devices, List<EstateUserDownDTO> users);

}
